<?php

class Relatorio extends Model {

	function __construct()
	{
		parent::Model();
	}
	
	function all() {
		return $this->getBySubprograma();
	}
	
	function getRelatorio($id) {
		$this->db->select("r.*, u.nome as nome_usuario, s.nome nome_subprograma, i.nome nome_instituicao");
		$this->db->from('rel_relatorio r');
		$this->db->join('rel_usuario u', 'r.usuario_id = u.id', 'left');
		$this->db->join('rel_subprograma s', 'r.subprograma_id = s.id', 'left');
		$this->db->join('rel_instituicao i', 'r.instituicao_id = i.id', 'left');
		$this->db->where('r.id =', $id);
		
		$relatorio = $this->db->get()->result();
		$relatorio = $relatorio[0];	
		
		$relatorio->siglas = array();
		
		$querys = 
		array("ap" => "SELECT texto, complemento FROM rel_producao_relatorio where relatorio_id = ".$id." and tipo = 'artigos'" ,
		"op" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'publicacoes'"	  ,
		"ps" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'patentes'"	  ,
		"_or" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'orientacoes'"  ,
		"opr" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'producoes'"	  ,
		"li" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'licencas'"	  ,
		"cn" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'nacionais'"	  ,
		"ci" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'internacionais'",
		"po" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'outros_eventos'",
		"pm" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'palestras'"	  ,
		"cm" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'cursos'"		  ,
		"at" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'trabalhos'"	  ,
		"opa" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'participacoes'",
		"vi" => "SELECT texto, complemento FROM rel_producao_relatorio rpr where rpr.relatorio_id = ".$id." and tipo = 'viagens'" );
		
		foreach ($querys as $chave=>$query){
			$relatorio->siglas[$chave] = $this->db->query($query)->result();
		}
		
		return $relatorio;
	}
	function getBySubprograma($subprograma_id = ''){
		$campos = "r.nome as nome_relatorio, r.id id_relatorio, r.data, u.nome as nome_usuario, s.nome nome_subprograma, i.nome nome_instituicao,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'artigos') as ap,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'publicacoes') as op,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'patentes') as ps,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'orientacoes') as _or,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'producoes') as opr,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'licencas') as li,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'nacionais') as cn,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'internacionais') as ci,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'outros_eventos') as po,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'palestras') as pm,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'cursos') as cm,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'trabalhos') as at,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'participacoes') as opa,";
		$campos .= "(SELECT COUNT(*) FROM rel_producao_relatorio rpr where rpr.relatorio_id = r.id and tipo = 'viagens') as vi";
		$this->db->select($campos);
		$this->db->from('rel_relatorio r');
		$this->db->join('rel_usuario u', 'r.usuario_id = u.id', 'left');
		$this->db->join('rel_subprograma s', 'r.subprograma_id = s.id', 'left');
		$this->db->join('rel_instituicao i', 'r.instituicao_id = i.id', 'left');
		if($subprograma_id != '')
			$this->db->where('s.id =', $subprograma_id);
		return $this->db->get()->result();
	}
	// --------------------------------------------------------------------

      /** 
       * function SaveForm()
       *
       * insert form data
       * @param $form_data - array
       * @return Bool - TRUE or FALSE
       */

	function save_form($form_data)
	{
		if($form_data["id"] == '' || $form_data["id"] == 0) $this->db->insert('rel_relatorio', $form_data);
		else $this->db->update('rel_relatorio', $form_data, array('id' => $form_data["id"]));
		
		return TRUE;
	}
}
?>